package xml.model;

import java.util.ArrayList;
import java.util.List;
import org.jdom.Element;
import xml.jdom.AbstractJDOMElement;

/**
 * Classe représentant un groupe (ensemble) de contacts, créé par un utilisateur.
 * Ce groupe est identifié par un nom et une URI.
 * @author marya
 */
public class Groupe extends AbstractJDOMElement {

    protected Integer idGroupe;
    protected int idUser;
    protected String uri;
    protected String nom;
    protected List<Contact> contacts;

    public Groupe() {
        this.contacts = new ArrayList<Contact>();
    }

    public Groupe(Integer idGroupe, String nom, List<Contact> contacts) {
        this.idGroupe = idGroupe;
        this.nom = nom;
        this.contacts = contacts;
    }

    public List<Contact> getContacts() {
        return contacts;
    }

    public void setContacts(List<Contact> contacts) {
        this.contacts = contacts;
    }

    public Integer getIdGroupe() {
        return idGroupe;
    }

    public void setIdGroupe(Integer idGroupe) {
        this.idGroupe = idGroupe;
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String url) {
        this.uri = url;
    }

    public int getIdUser() {
        return idUser;
    }

    public void setIdUser(int idUser) {
        this.idUser = idUser;
    }

    public Element toJDOMElement() {
        Element racine = new Element("groupe");
        if (uri != null) {
            racine.setAttribute("url", uri);
        }

        Element elementNom = new Element("nom");
        elementNom.setText(nom);
        racine.addContent(elementNom);

        if (contacts != null) {
            Element eContacts = new Element("contacts");
            for (Contact contact : contacts) {
                eContacts.addContent(contact.toJDOMElement());
            }
            racine.addContent(eContacts);
        }
        return racine;
    }
}
